1. Technical Field
The present invention relates in general to electronic communications systems, and in particular to a method and system for implementing control mechanisms to enhance Transport Control Protocol (TCP) performance. Still more particularly, the present invention relates to a method and system for implementing robust TCP performance over wireless links utilizing a TCP-Aware Agent Sublayer (TAS).
2. Description of the Related Art
Transport Control Protocol (TCP) is a "layer 4" protocol utilized in various wire and wireless transport paths as the means for enabling transmission of data, voice, telephony, Internet Protocol (IP), etc. TCP provides end-to-end session control between two hosts. It is connection-oriented, i.e. it requires a session to be established before data can be exchanged. TCP also provides error detection and correction for applications requiring connection-oriented services. As with other connection-oriented protocols, once the session is established between two logical entities, the receiving host must acknowledge all received data units. If a data unit is not acknowledged, there are no error messages (negative acknowledgments (NAK)) sent by TCP. Instead, the sending host sets a timer, and if no positive acknowledgment (ACK) is received before the expiration of the timer, then the data unit is automatically retransmitted. The timer is a variable one based on round-trip time. TCP utilizes both ACKs and windowing for flow control. Fields for the ACK number and window size are found within the TCP header which is attached to the respective data. TCP allows the host to adjust its window based on resources available, as well as buffer size.
TCP is designed to perform well over traditional low-loss wire-line networks. Designers of TCP integrated a robust window-based flow control mechanism with the traditional Automatic Request for Retransmission (ARQ), to help a network gracefully recover from packet losses due to network congestion, without aggravating the congestion during the recovery process. TCP, however, attributes all types of packet loss, both wired and wireless, to network congestion and enters the congestion control mode even though the loss may be due to other reasons such as a fading wireless access link. This causes the TCP throughput to degrade unnecessarily.
Link layer ARQ mechanisms have been suggested to shield TCP from the vagaries of the radio link. Various Radio Link Protocol (RLP) including IS-707 or Third Generation (3G) Phase I (currently, under development) or General Packet Radio Service (GPRS) Radio Link Control (RLC) proposes to reduce this problem by splitting a TCP packet into smaller frames at the radio link layer and perform a limited number of retransmissions over the air link to try to recover from frame errors. If a frame cannot be transmitted successfully by RLP, it is up to the higher layer TCP to retransmit. In GPRS, if RLC fails to transmit a frame, error-recovery is performed by the higher layers--Logical Link Control (LLC) and/or TCP. will invoke congestion control which may even reduce the window size to a single packet. The IS-707 RLP performs well in a random or flat Rayleigh-fading environment (i.e., a radio impairment encountered in cellular telephones 800 MHz frequency band that causes an occasional signal interval to be lost) and TCP throughput is maintained at near maximum until an average air link frame error rate of fifteen percent (15%) occurs.
The problem becomes worse for wireless links with prolonged fading/shadowing in a typical urban or metropolitan environment. Disconnections of the order of a few seconds are common when the user moves out of coverage or under a bridge or tunnel. This can make the RLP retransmission mechanism futile. In addition, cellular networks fall in the category commonly known as Long-Thin-Networks (LTN) which are characterized by a long round-trip delay. Traditional TCP throughput for LTN's is inversely related to the round-trip delay. The longer the TCP ACK packets takes to reach the source, the greater the lag between the packet loss and the loss recovery process and the worse the performance. Hence, it makes sense to retransmit TCP packets locally at the base station controller (BSC) close to the radio link.
Recent proposals for improving TCP performance can be divided into two broad classes: (i) those which do not maintain end-to-end TCP semantics, including Indirect TCP (I-TCP) and Mobile TCP/Server Request Programming (MTCP/SRP); and (ii) those which do, including link layer ARQ approach (Code Division Multiple Access (CDMA) RLP, GPRS RLC, and Airmail), and "Snoop" approach.
One of the earlier proposals for the class of approaches which do not maintain end-to-end TCP semantics is called I-TCP. It involves splitting each TCP connection at sender and receiver into two separate connections at the BSC--one over the radio link and the other between the BSC (known as Mobile Support Router (MSR)) and the end host. I-TCP attempts to shield the regular TCP packet from packet loss over wireless link. However, normal TCP activity over air link runs into severe problems. Also, the violation of the end-to-end TCP semantics may lead to buffer overflows at the MSR when wireless TCP timeouts arise due to link failures and the regular (wireline) TCP does not time out. Processing overhead is also very high as TCP processing takes place twice at MSR for each packet. Also, since the protocol maintains a significant amount of state information at the MSR per TCP connection, hand-off procedures tend to be complicated and lengthy.
Although a few other split TCP approaches (MTCP and SRP) have been suggested which propose to use a lightweight TCP connection over the air link, the main problems with this approach are the large processing overhead at the BSC and the complicated hand-off of TCP connection states from one BSC to another. Utilizing a lightweight TCP over the air-link also calls for a change in the commercial TCP stack running in the mobile host. The link layer ARQ schemes are generally sufficient under ordinary fading conditions. However, during prolonged deep fades or disconnections, these retransmissions are insufficient to control TCP's performance. Also, the link layer schemes are totally oblivious of the existence of TCP which can be detrimental to TCP's performance (e.g., TCP's retransmission timer may time-out while RLC is doing retransmissions, prompting unnecessary retransmission of the same data and severely affecting TCP throughput).
Over the recent years, a number of other smart schemes have been developed to guarantee consistent TCP performance over radio link. Notable among the class which preserves end-to-end TCP semantics is the "snoop" approach (Snoop) for data transmission in the forward link. This scheme introduces a module above the IP layer at the Base Station Controller (BSC) whose main function is to cache TCP packets for future retransmission and discard duplicate ACK's to prevent the remote TCP sender from entering the congestion control mode. Snoop improves performance due to the local priority-based retransmissions allowing faster error recovery. However, some significant drawbacks exist with the snoop approach. Snoop retransmits the entire TCP packet. Snoop also does not provide any means to induce TCP flow control during the onset of a prolonged disconnection (e.g., when an user enters a tunnel or loses coverage for a few seconds).
A significant robustness of performance for the TCP layer can be achieved by using a feedback mechanism between the link layer ARQ and the transport layer, tightly coupling the activities of both layers in the process. This is absent in current standards (e.g., GPRS, where LLC and RLC transmissions are totally TCP-unaware). The "snoop" approach performs somewhat better by reducing the round trip response to TCP packet losses, but also suffers from several drawbacks as noted earlier.
In light of the foregoing, it is desirable that there be a close coupling between the link layer retransmissions (RLP/RLC/LLC) and the TCP retransmission such that their functions are not duplicated. It would also therefore be generally beneficial and desirable to have a quicker methods which recovers only the portions of a packet which are actually lost (e.g., an air link frame), rather than the larger TCP packets. It would further be desirable to have a system which is capable of responding to short term fadings and long/prolonged disconnects during TCP connections.